// 路由的前置守卫

import router from '@/router'
import useUserStore from './stores/user'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'



// 结论：
// 1.pinia模块在组件中使用写在组件的最上面
// 2.pinia在ts/js中要写在函数的内部

// to:跳转到的组件
// form ：从哪里来的组件
// next：下一步 next()放行 next(false)不放行 next(路径)跳转到该路径

//未登录用户名单可以去的地址->白名单
const whiteList = ['/login','/404']

router.beforeEach((to,from,next) => {
    // 开启进度条
    NProgress.start()

    const user = useUserStore()
    const token = user.userInfo.token

    if(token){
        // 登录
        if(to.path=='/login'){
            next('/')
        }else{
            next()
        }
    }else{
        // 未登录
        if(whiteList.includes(to.path)){
            next()
        }else{
            next('/login')
        }
    }
})

router.afterEach(()=>{
    NProgress.done()
})
